/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gerenciadorescola.controller.pattern.command;

import gerenciadorescola.model.Escola;
import gerenciadorescola.model.Professor;
import gerenciadorescola.model.Turma;
import java.util.HashMap;
import java.util.Map;

/**
 *
 * @author Pedro Freitas
 */
public class ComandoExcluiProfessor implements Command {

    public Map execute(Map<String, String> entrada) {
        Escola escola = Escola.getInstance();
        int codigo = Integer.parseInt(entrada.get("codigo"));

        Map<String, String> saida = new HashMap();

        Map<Integer, Turma> t = buscaTurma(entrada);

        Map<Integer, Professor> professores = t.get(0).getProfessores();

        if (buscaTurma(entrada) != null) {
            for (Map.Entry<Integer, Professor> p : professores.entrySet()) {
                if (codigo == p.getKey()) {
                    professores.remove(p.getKey());
                    t.get(0).setProfessores(professores);
                    saida.put("msg", "Professor " + String.valueOf(codigo) + " removido com sucesso!");
                    System.out.println(p.toString());
                    return saida;
                }
            }
            saida.put("msg", "Não foi possivel encontrar o Professor " + String.valueOf(codigo));
        } else {
            saida.put("msg", "A turma não pode ser encontrada!");
        }
        return saida;

    }

    public Map<Integer, Turma> buscaTurma(Map<String, String> entrada) {
        Escola escola = Escola.getInstance();
        Map<Integer, Turma> turmas = escola.getTurmas();

        int codigo = Integer.parseInt(entrada.get("codTurma"));

        for (Map.Entry<Integer, Turma> t : turmas.entrySet()) {
            if ((codigo == t.getKey())) {
                turmas = new HashMap();
                turmas.put(0, t.getValue());
                return turmas;
            }
        }

        return null;


    }
}
